import 'package:flutter/material.dart';

var markSize=0;
/// 搜索中用到的颜色标记文本 
TextSpan MarkText(String originalText, String searchText, int selectNowPageIndex) {
    final textSpans = <TextSpan>[];
    var start =0;
    final lowerText = originalText;
    final lowerSearchText = searchText;
    while (true) {
      final index = lowerText.indexOf(lowerSearchText, start);
      
      // 没有找到更多匹配
      if (index == -1) {
        // 添加剩余文本
        textSpans.add(TextSpan(text: originalText.substring(start)));
        break;
      }
      
      // 添加匹配前的文本
      if (index > start) {
        textSpans.add(TextSpan(text: originalText.substring(start, index)));
      }
      
      // 添加高亮的匹配文本
      textSpans.add(TextSpan(
        text: originalText.substring(index, index + searchText.length),
        style: TextStyle(
          backgroundColor: (markSize++==selectNowPageIndex) ? Colors.red: Colors.yellow, // 背景高亮
          fontWeight: FontWeight.bold,    // 加粗
        ),
      ));
      
      // 移动起始位置
      start = index + searchText.length;
    }
    return TextSpan(children: textSpans);
}
